/*------------------------------------------------------------------------------

Paper:			- Black Empowerment and White Mobilization:
					The Effects of the Voting Rights Act

Journal:		- Journal of Political Economy, 2025

Authors:		- Andrea Bernini:
					University of Oxford					
				- Giovanni Facchini:
					University of Nottingham, CEPR, CES-Ifo, CReAM, GEP, IZA
				- Marco Tabellini:
					Harvard Business School, NBER, CEPR, CReAM, IZA
				- Cecilia Testa:
					University of Nottingham, NICEP, CEPR

Instructions:	- README.pdf

------------------------------------------------------------------------------*/

clear all

// Change the directory
global user				"C:\local_directory"

global dataset				"$user\datasets"
global output	            "$user\output"

// .ado files
run "$user\twowaycluster_1.ado"
run "$user\twowaycluster_2.ado"
run "$user\ols_spatial_HAC.ado"

// Controls
global controls_int "c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc"
global controls_int_no_cotton "c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc"
global controls_int_no_gb "c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc"
global controls_int_panel "c.family_less_3000#literacy_nc##ib(#1).year c.unemp60#literacy_nc##ib(#1).year c.rural_farm60#literacy_nc##ib(#1).year c.cotton_share_acre#literacy_nc##ib(#1).year c.school_low#literacy_nc##ib(#1).year c.pro_black_county#literacy_nc##ib(#1).year c.anti_black_county#literacy_nc##ib(#1).year c.gb_tot_1955_b#literacy_nc##ib(#1).year"

global controls_figure_2 "c.family_less_3000#literacy_nc##ib(#2).year c.unemp60#literacy_nc##ib(#2).year c.rural_farm60#literacy_nc##ib(#2).year c.cotton_share_acre#literacy_nc##ib(#2).year"

// Globals
global black "black_share60_d56 black_share60_d60 black_share60_d64 black_share60_d68 black_share60_d72 black_share60_d76 black_share60_d80"
global black_lit "black_share60_lit_d56 black_share60_lit_d60 black_share60_lit_d64 black_share60_lit_d68 black_share60_lit_d72 black_share60_lit_d76 black_share60_lit_d80"
global time_beo "literacy_d9 literacy_d10 literacy_d11 literacy_d12 literacy_d13 literacy_d14 literacy_d15 literacy_d16 literacy_d17 literacy_d18 literacy_d19 literacy_d20 literacy_d21"



/*
Table C1. Robustness: Heterogeneity (and selection) on observables and unobservables
*/
cd $dataset
use "dataset_robustness_2.dta", clear

// Column 1
cem black_share60, treatment(literacy_nc)

xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if cem_matched == 1 , nocon robust cluster(judicial_divisions_id)
est sto bl_cem

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y17_mn: dis %8.3fc r(mean)
local y17_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x17_mn: dis %8.3fc r(mean)
local x17_sd = "(" + string(r(sd), "%8.3fc") + ")"

xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if cem_matched == 1 , nocon robust cluster(judicial_divisions_id)
est sto wh_cem
	
quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y18_mn: dis %8.3fc r(mean)
local y18_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x18_mn: dis %8.3fc r(mean)
local x18_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Column 2
pbalchk literacy_nc black_share60 $controls
logistic literacy_nc black_share60 $controls
predict propensity
predict lp, xb
estat gof, group(10) table
predict prop2
predict lp2, xb
xtile pq10 = lp2, n(10)
tab pq10 literacy_nc, ro
xtile pq5 = lp2, n(5)
tab pq5 literacy_nc, ro
pbalchk literacy_nc black_share60 $controls, strata(pq5)
bys literacy_nc: summ prop2
proptrim literacy_nc prop2


xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE i.pq5 [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_prop_strat

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y19_mn: dis %8.3fc r(mean)
local y19_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x19_mn: dis %8.3fc r(mean)
local x19_sd = "(" + string(r(sd), "%8.3fc") + ")"

xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE i.pq5 [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_prop_strat

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y20_mn: dis %8.3fc r(mean)
local y20_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x20_mn: dis %8.3fc r(mean)
local x20_sd = "(" + string(r(sd), "%8.3fc") + ")"


// Column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if prop2 <= 0.9626571 & prop2 >= 0.131609 , nocon robust cluster(judicial_divisions_id)
est sto bl_prop_trim

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y21_mn: dis %8.3fc r(mean)
local y21_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x21_mn: dis %8.3fc r(mean)
local x21_sd = "(" + string(r(sd), "%8.3fc") + ")"

xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if prop2 <= 0.9626571 & prop2 >= 0.131609 , nocon robust cluster(judicial_divisions_id)
est sto wh_prop_trim

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y22_mn: dis %8.3fc r(mean)
local y22_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x22_mn: dis %8.3fc r(mean)
local x22_sd = "(" + string(r(sd), "%8.3fc") + ")"


// Column 4
su black_share60 if literacy_nc == 0
su black_share60 if literacy_nc == 1

xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if black_share60 < 68.9 , nocon robust cluster(judicial_divisions_id)
est sto bl_trim_bl

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y15_mn: dis %8.3fc r(mean)
local y15_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x15_mn: dis %8.3fc r(mean)
local x15_sd = "(" + string(r(sd), "%8.3fc") + ")"

xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if black_share60 < 68.9 , nocon robust cluster(judicial_divisions_id)
est sto wh_trim_bl

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y16_mn: dis %8.3fc r(mean)
local y16_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x16_mn: dis %8.3fc r(mean)
local x16_sd = "(" + string(r(sd), "%8.3fc") + ")"


// Table
cd $output
estout bl_cem bl_prop_strat bl_prop_trim bl_trim_bl using robustness_table_heterogeneity.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{11.0pt} \caption{Robustness: Heterogeneity (and selection) on observables and unobservables} \label{robustness_table_heterogeneity} \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\small \begin{tabular}{@{}l c c c c} \toprule\midrule \textit{Dep. variable:} & \multicolumn{4}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-5} & CEM & Stratifying & Trimming & Trimming \\ & & Propensity & Propensity & Black Pop. \\ \addlinespace & (1) & (2) & (3) & (4) \\ \midrule \emph{Panel A: Black registration} \\ \midrule") /// 
prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y17_mn'&`y19_mn'&`y21_mn'&`y15_mn' \\ &`y17_sd'&`y19_sd'&`y21_sd'&`y15_sd' \\ \addlinespace Black share, 1960 &`x17_mn'&`x19_mn'&`x21_mn'&`x15_mn' \\ &`x17_sd'&`x19_sd'&`x21_sd'&`x15_sd' \\ \midrule \addlinespace\addlinespace ")

estout wh_cem wh_prop_strat wh_prop_trim wh_trim_bl using robustness_table_heterogeneity.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \emph{Panel B: White registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y18_mn'&`y20_mn'&`y22_mn'&`y16_mn' \\ &`y18_sd'&`y20_sd'&`y22_sd'&`y16_sd' \\ \addlinespace Black share, 1960 &`x18_mn'&`x20_mn'&`x22_mn'&`x16_mn' \\ &`x18_sd'&`x20_sd'&`x22_sd'&`x16_sd' \\ \midrule \addlinespace\addlinespace ") postfoot("\midrule\bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: The table replicates the long difference model in equation \eqref{longdiff}: i) using a coarsened exact matching sample on the distribution of the sample in column (1); ii) stratifying the sample in 5 strata based on the propensity score in column (2); iii) trimming the sample to common support based on the propensity score in column (3); iv) trimming the sample based on 1960 Black population shares in column (4). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} \end{center} \end{table}")


/*
Table C2. Robustness: Data quality
*/
cd $dataset
use "dataset_robustness_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres64 black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_1964

quietly summarize votreg_black_pct_presyears1964 [aweight=pop1960] if e(sample)
local y1_mn: dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres64 black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_1964

quietly summarize votreg_white_pct_presyears1964 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if reg_black_above_100 == 0 , nocon robust cluster(judicial_divisions_id)
est sto bl_ab_100

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if reg_white_above_100 == 0 , nocon robust cluster(judicial_divisions_id)
est sto wh_ab_100

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if anomaly != 1 , nocon robust cluster(judicial_divisions_id)
est sto bl_anomaly

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if anomaly != 1 , nocon robust cluster(judicial_divisions_id)
est sto wh_anomaly

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if FIPSTATE != 28 & FIPSTATE != 05 & FIPSTATE != 51 & FIPSTATE != 47 , nocon robust cluster(judicial_divisions_id)
est sto bl_1980

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if FIPSTATE != 28 & FIPSTATE != 05 & FIPSTATE != 51 & FIPSTATE != 47 , nocon robust cluster(judicial_divisions_id)
est sto wh_1980

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg avg_ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_average

quietly summarize avg_votreg_black_pct_pres1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg avg_ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_average

quietly summarize avg_votreg_white_pct_pres1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_cotton ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_cotton

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y11_mn: dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 6
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_cotton ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_cotton

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 7
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.ln_rep_share_1960#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_rep_60

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y13_mn: dis %8.3fc r(mean)
local y13_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x13_mn: dis %8.3fc r(mean)
local x13_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 7
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.ln_rep_share_1960#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_rep_60

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y14_mn: dis %8.3fc r(mean)
local y14_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x14_mn: dis %8.3fc r(mean)
local x14_sd = "(" + string(r(sd), "%8.3fc") + ")"


preserve

cd $dataset
merge 1:m county using "dataset_border_2.dta", force
keep if _m == 3

// Panel A, column 8
twowayclusterBTF_withconst ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 ln_rep_share_1960 pair_fixedeffect_1-pair_fixedeffect_113 , w(county_w) fcluster(judicial_border) tcluster(judicial_divisions_id)
est sto bl_rep_60_grd

// Panel B, column 8
twowayclusterBTF_withconst ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 ln_rep_share_1960 pair_fixedeffect_1-pair_fixedeffect_113 , w(county_w) fcluster(judicial_border) tcluster(judicial_divisions_id)
est sto wh_rep_60_grd

restore

// Panel A, column 9
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if county != "12021" & county != "12049" & county != "12051" & county != "12057" & county != "12087" , nocon robust cluster(judicial_divisions_id)
est sto bl_fl_cov

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y17_mn: dis %8.3fc r(mean)
local y17_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x17_mn: dis %8.3fc r(mean)
local x17_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 9
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if county != "12021" & county != "12049" & county != "12051" & county != "12057" & county != "12087" , nocon robust cluster(judicial_divisions_id)
est sto wh_fl_cov

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y18_mn: dis %8.3fc r(mean)
local y18_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x18_mn: dis %8.3fc r(mean)
local x18_sd = "(" + string(r(sd), "%8.3fc") + ")"


cd $dataset
merge 1:m county using "dataset_border_2.dta", force
keep if _m == 3

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y15_mn: dis %8.3fc r(mean)
local y15_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x15_mn: dis %8.3fc r(mean)
local x15_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y16_mn: dis %8.3fc r(mean)
local y16_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x16_mn: dis %8.3fc r(mean)
local x16_sd = "(" + string(r(sd), "%8.3fc") + ")"


cd $output

estout bl_1964 bl_ab_100 bl_anomaly bl_1980 bl_average bl_cotton bl_rep_60 bl_rep_60_grd bl_fl_cov using robustness_table_data_quality.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{4.0pt} \caption{Robustness: Data quality} \label{robustness_table_data_quality} \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\scriptsize \begin{tabular}{@{}l c c c c c c c c c} \toprule\midrule \textit{Dep. variable:} & \multicolumn{9}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-10} & 1980-1964 & Below & Below & 1980 & Average & Cotton & \multicolumn{2}{c}{Republican Share} & Florida \\ & Registr. & 100\% & Turnout & Registr. & Registr. & Share & \multicolumn{2}{c}{1960} & reauthor. \\ \cmidrule(r){8-9} & & & & & & & Overall & Border & \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8) & (9) \\ \midrule \emph{Panel A: Black registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn'&`y9_mn'&`y11_mn'&`y13_mn'&`y15_mn'&`y17_mn' \\ &`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd'&`y9_sd'&`y11_sd'&`y13_sd'&`y15_sd'&`y17_sd' \\ \addlinespace Black share, 1960 &`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn'&`x9_mn'&`x11_mn'&`x13_mn'&`x15_mn'&`x17_mn' \\ &`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd'&`x9_sd'&`x11_sd'&`x13_sd'&`x15_sd'&`x17_sd' \\ \midrule \addlinespace\addlinespace ")

estout wh_1964 wh_ab_100 wh_anomaly wh_1980 wh_average wh_cotton wh_rep_60 wh_rep_60_grd wh_fl_cov using robustness_table_data_quality.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \emph{Panel B: White registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn'&`y10_mn'&`y12_mn'&`y14_mn'&`y16_mn'&`y18_mn' \\ &`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd'&`y10_sd'&`y12_sd'&`y14_sd'&`y16_sd'&`y18_sd' \\ \addlinespace Black share, 1960 &`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'&`x10_mn'&`x12_mn'&`x14_mn'&`x16_mn'&`x18_mn' \\ &`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd'&`x10_sd'&`x12_sd'&`x14_sd'&`x16_sd'&`x18_sd' \\ \midrule \addlinespace\addlinespace ") postfoot("\midrule\bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: The table replicates the long difference model in equation \eqref{longdiff}: i) with the change in registration rates between 1980 and 1964 in column (1); ii) removing observations with a registration rate of 100\% in column (2); iii) removing observations with a total registration above total turnout in column (3); iv) excluding the states without information in 1980 (Arkansas, Mississippi, Tennessee, Virginia) in column (4); v) taking the average between 1960 and 1964, and also between 1976 and 1980 (Alabama, Florida, Louisiana, South Carolina) in column (5); vi) removing the two controls Rural farms (\%), 1960; and Land devoted to harvested cotton (\%), 1959 in column (6); vii) adding the Republican vote share (\%), 1960 in columns (7) and (8); viii) excluding the Florida counties covered by the 1975 reauthorization in column (9). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} \end{center} \end{table}")


/*
Table C3. Robustness: Outliers, variable definition, and clustering
*/
cd $dataset
use "dataset_robustness_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if dummy_black_1 == 0 & dummy_black_6 == 0 , nocon robust cluster(judicial_divisions_id)
est sto bl_1_99

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn: dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if dummy_black_2 == 0 & dummy_black_5 == 0 , nocon robust cluster(judicial_divisions_id)
	est sto bl_5_95

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if dummy_white_1 == 0 & dummy_white_6 == 0 , nocon robust cluster(judicial_divisions_id)
est sto wh_1_99

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] if dummy_white_2 == 0 & dummy_white_5 == 0 , nocon robust cluster(judicial_divisions_id)
est sto wh_5_95

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.black_share60_quadratic c.black_share60_cubic c.black_share60_quartic ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_quart

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.black_share60_quadratic c.black_share60_cubic c.black_share60_quartic ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_quart

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_rate

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_rate

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg ch_ln1_black black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_ln_rate

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg ch_ln1_white black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_ln_rate

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_indiv

quietly summarize ln_votreg_black1960 [aweight=pop1960] if e(sample)
local y11_mn: dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 6
xi: reg ch_ln_votreg_white black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_indiv

quietly summarize ln_votreg_white1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 7
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(FIPSTATE)
est sto bl_cl_state

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y13_mn: dis %8.3fc r(mean)
local y13_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x13_mn: dis %8.3fc r(mean)
local x13_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 7
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(FIPSTATE)
est sto wh_cl_state

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y14_mn: dis %8.3fc r(mean)
local y14_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x14_mn: dis %8.3fc r(mean)
local x14_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Conley
ren x_centroid longitude
ren y_centroid latitude
// Demean X1
xi: reg black_share60_lit_nc $controls_int ibn.STATE [aweight=pop1960] , robust cluster(judicial_divisions_id)
predict x1_res, residuals	
replace x1_res=sqrt(pop1960 )*x1_res
// Demean X2
xi: reg black_share60 $controls_int ibn.STATE [aweight=pop1960] , robust cluster(judicial_divisions_id) 
predict x2_res, residuals	
replace x2_res=sqrt(pop1960 )*x2_res
// Demean Y
set more off
xi: reg ch_ln_votreg_black_pct_pres $controls_int ibn.STATE [aweight=pop1960] , robust cluster(judicial_divisions_id) 
predict y_res, residuals
quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y15_mn: dis %8.3fc r(mean)
local y15_sd = "(" + string(r(sd), "%8.3fc") + ")"
// Temporary renaming
ren black_share60_lit_nc int_l
ren x1_res black_share60_lit_nc
ren black_share60 bl
ren x2_res black_share60
// Simulate aweights
replace y_res = sqrt(pop1960)*y_res
ols_spatial_HAC y_res black_share60_lit_nc black_share60, lat(latitude) lon(longitude) t(countycode) p(countycode) distcutoff(100) lagcutoff(0) 
est sto bl_conley100
drop y_res
// Demean Y 
xi: reg ch_ln_votreg_white_pct_pres $controls_int ibn.STATE [aweight=pop1960] , robust cluster(judicial_divisions_id) 
predict y_res, residuals
quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y16_mn: dis %8.3fc r(mean)
local y16_sd = "(" + string(r(sd), "%8.3fc") + ")"
// Simulate aweights
replace y_res = sqrt(pop1960)*y_res
ols_spatial_HAC y_res black_share60_lit_nc black_share60, lat(latitude) lon(longitude) t(countycode) p(countycode) distcutoff(100) lagcutoff(0) 
est sto wh_conley100
drop black_share60 black_share60_lit_nc
ren int_l black_share60_lit_nc 
ren bl black_share60

// Table
cd $output

estout bl_1_99 bl_5_95 bl_quart bl_rate bl_ln_rate bl_indiv bl_cl_state bl_conley100 using robustness_table_outliers_nonlinearity.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{6.0pt} \caption{Robustness: Outliers, variable definition, and clustering} \label{robustness_table_outliers_nonlinearity} \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\footnotesize \begin{tabular}{@{}l c c c c c c c c} \toprule\midrule \textit{Dep. variable:} & \multicolumn{8}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-9} & 1st-99th & 5th-95th & Quartic & Rate & (ln) Rate & Individ. & State & Conley \\ & Percent. & Percent. & Polyn. & & & & Cluster & 100km \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8) \\ \midrule \emph{Panel A: Black registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn'&`y9_mn'&`y11_mn' &`y13_mn'&`y15_mn' \\ &`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd'&`y9_sd'&`y11_sd'&`y13_sd'&`y15_sd' \\ \addlinespace Black share, 1960 &`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn'&`x9_mn'&`x11_mn' &`x13_mn'&`x13_mn'  \\ &`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd'&`x9_sd'&`x11_sd'&`x13_sd'&`x13_sd' \\ \midrule \addlinespace\addlinespace ")

estout wh_1_99 wh_5_95 wh_quart wh_rate wh_ln_rate wh_indiv wh_cl_state wh_conley100 using robustness_table_outliers_nonlinearity.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \emph{Panel B: White registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn'&`y10_mn'&`y12_mn' &`y14_mn'&`y16_mn' \\ &`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd'&`y10_sd'&`y12_sd'&`y14_sd'&`y16_sd' \\ \addlinespace Black share, 1960 &`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'&`x10_mn'&`x12_mn' &`x14_mn'&`x14_mn' \\ &`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd'&`x10_sd'&`x12_sd'&`x14_sd'&`x14_sd' \\ \midrule \addlinespace\addlinespace ") postfoot("\midrule\bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: The table replicates the long difference model in equation \eqref{longdiff}: i) dropping observations with registration rates above/below the 1st and 99th percentiles, and the 5th and 95th percentiles, respectively, in columns (1) and (2); ii) using a quartic polynomial regression of the Black population in column (3); iii) measuring registration as rates (\%) instead of ln(rates) in column (4); iv) measuring registration as ln(1 + rates) in column (5); v) measuring registration as ln(1 + registered individuals) in column (6); vi) with robust standard errors adjusted for clustering at the state level in column (7); vii) with spatial HAC standard errors using a 100km cutoff (Conley, 1999) in column (8). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions (in columns 1 to 6). ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} \end{center} \end{table}")


/*
Table C4. Controlling for residential segregation
*/
cd $dataset
use "dataset_wide_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_1955_b#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_gb_55

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn: dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_1955_b#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_gb_55

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"


// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_b#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_all

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_b#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_all

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_growth_rate#literacy_nc ibn.STATE [aweight=pop1960] if gb_tot_b != . , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_gr

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_growth_rate#literacy_nc ibn.STATE [aweight=pop1960] if gb_tot_b != . , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_gr

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.alpha_po#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_lp_main

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.alpha_po#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_lp_main

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.dissimilarity_po#literacy_nc ibn.STATE [aweight=pop1960] if alpha_po != . , nocon robust cluster(judicial_divisions_id)
est sto bl_lp_di

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.dissimilarity_po#literacy_nc ibn.STATE [aweight=pop1960] if alpha_po != . , nocon robust cluster(judicial_divisions_id)
est sto wh_lp_di

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.isolation_po#literacy_nc ibn.STATE [aweight=pop1960] if alpha_po != . , nocon robust cluster(judicial_divisions_id)
est sto bl_lp_is

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y11_mn: dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 6
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.isolation_po#literacy_nc ibn.STATE [aweight=pop1960] if alpha_po != . , nocon robust cluster(judicial_divisions_id)
est sto wh_lp_is

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Table
cd $output
estout bl_gb_55 bl_gb_all bl_gb_gr bl_lp_main bl_lp_di bl_lp_is using green_books_logan_parman.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{6.0pt} \caption{Controlling for residential segregation} \label{green_books_logan_parman} \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\footnotesize \begin{tabular}{p{0.25\textwidth}>{\centering}p{0.09\textwidth}>{\centering}p{0.09\textwidth}>{\centering}p{0.13\textwidth}>{\centering}p{0.09\textwidth}>{\centering}p{0.09\textwidth}>{\centering\arraybackslash}p{0.09\textwidth}} \toprule\midrule \textit{Dep. variable:} & \multicolumn{6}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-7} & \multicolumn{3}{c}{Green Books Establishments} & \multicolumn{3}{c}{Residential Segregation} \\ \cmidrule(r){2-4} \cmidrule(r){5-7} & Baseline & All Estab. & Growth Rate & Segregation & Dissimilarity & Isolation \\ & Specification & 1939-1955 & 1939-1955 & Index & Index & Index \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) \\ \midrule \emph{Panel A: Black registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn'&`y9_mn'&`y11_mn' \\ &`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd'&`y9_sd'&`y11_sd' \\ \addlinespace Black share, 1960 &`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn'&`x9_mn'&`x11_mn' \\ &`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd'&`x9_sd'&`x11_sd' \\ \midrule \addlinespace\addlinespace ")

estout wh_gb_55 wh_gb_all wh_gb_gr wh_lp_main wh_lp_di wh_lp_is using green_books_logan_parman.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \emph{Panel B: White registration} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn'&`y10_mn'&`y12_mn' \\ &`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd'&`y10_sd'&`y12_sd' \\ \addlinespace Black share, 1960 &`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'&`x10_mn'&`x12_mn' \\ &`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd'&`x10_sd'&`x12_sd' \\ \midrule \addlinespace\addlinespace ") postfoot("\midrule\bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: Using data on Green Book establishments from \cite{cook2023}, the table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: i) the number of all Green Book establishments present in 1955, standardized by the Black population in 1950 in columns (1); ii) the average number of all Green Book establishments between 1939 and 1955 (both years included) in columns (2); iii) the growth rate of all Green Book establishments between 1939 and 1955 in columns (3). Using the index present in \cite{loganparman2017}, the table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: iv) the Segregation Index, the Dissimilarity Index, and the Isolation Index, respectively, in columns (4), (5), and (6). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64. Green Book establishments, 1955 is added as a control in columns (4) to (6). Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} \end{center} \end{table}")


/*
Table C5. Controlling for Green Book establishments as a share of total establishments
*/
cd $dataset
use "dataset_wide_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_eat_1939_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_eat_1939

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn: dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_eat_1939_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_eat_1939

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_gas_1939_num#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_gb_gas_1939

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_gas_1939_num#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_gb_gas_1939

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_hotel_1939_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_hotel_1939

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_hotel_1939_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_hotel_1939

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_1939_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_total_1939

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_1939_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_total_1939

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_eat_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_eat_1948

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_eat_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_eat_1948

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_gas_1948_num#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_gb_gas_1948

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y11_mn: dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 6
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_gas_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_gas_1948

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 7
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_hotel_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_hotel_1948

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y13_mn: dis %8.3fc r(mean)
local y13_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x13_mn: dis %8.3fc r(mean)
local x13_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 7
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_hotel_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_hotel_1948

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y14_mn: dis %8.3fc r(mean)
local y14_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x14_mn: dis %8.3fc r(mean)
local x14_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 8
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_gb_total_1948

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y15_mn: dis %8.3fc r(mean)
local y15_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x15_mn: dis %8.3fc r(mean)
local x15_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 8
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int_no_gb c.gb_tot_1948_num#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_gb_total_1948

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y16_mn: dis %8.3fc r(mean)
local y16_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x16_mn: dis %8.3fc r(mean)
local x16_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Table
cd $output

estout bl_gb_eat_1939 bl_gb_gas_1939 bl_gb_hotel_1939 bl_gb_total_1939 bl_gb_eat_1948 bl_gb_gas_1948 bl_gb_hotel_1948 bl_gb_total_1948 using control_for_greenbooks_total_andrea.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{6.0pt} \caption{Controlling for Green Book establishments as a share of total establishments} \label{control_for_greenbooks_total} \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\scriptsize \begin{tabular}{p{0.20\textwidth}>{\centering}p{0.07\textwidth}>{\centering}p{0.07\textwidth}>{\centering}p{0.07\textwidth}>{\centering}p{0.07\textwidth}>{\centering}p{0.07\textwidth}>{\centering}p{0.07\textwidth}>{\centering}p{0.07\textwidth}>{\centering\arraybackslash}p{0.07\textwidth}} \toprule\midrule \textit{Dep. variable:} & \multicolumn{8}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-5} \cmidrule(r){6-9} & \multicolumn{4}{c}{Green Book Establishments in 1939} & \multicolumn{4}{c}{Green Book Establishments in 1948} \\ \cmidrule(r){2-9} & Restaurants & Gas & Hotels & Total & Restaurants & Gas & Hotels & Total \\ & & Stations & & & & Stations & & \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8) \\ \midrule \multicolumn{8}{l}{\emph{Panel A: Black registration}} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y9_mn'&`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn'&`y11_mn'&`y13_mn'&`y15_mn' \\ &`y9_sd'&`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd'&`y11_sd'&`y13_sd'&`y15_sd' \\ \addlinespace Black share, 1960 &`x9_mn'&`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn'&`x11_mn'&`x13_mn'&`x15_mn' \\ &`x9_sd'&`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd'&`x11_sd'&`x13_sd'&`x15_sd' \\ \midrule \addlinespace\addlinespace ")

estout wh_gb_eat_1939 wh_gb_gas_1939 wh_gb_hotel_1939 wh_gb_total_1939  wh_gb_eat_1948 wh_gb_gas_1948 wh_gb_hotel_1948 wh_gb_total_1948 using control_for_greenbooks_total_andrea.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \multicolumn{8}{l}{\emph{Panel B: White registration}} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y10_mn'&`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn'&`y12_mn'&`y14_mn'&`y16_mn' \\ &`y10_sd'&`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd'&`y12_sd'&`y14_sd'&`y16_sd' \\ \addlinespace Black share, 1960 &`x10_mn'&`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'&`x12_mn'&`x14_mn'&`x16_mn' \\ &`x10_sd'&`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd'&`x12_sd'&`x14_sd'&`x16_sd' \\ \midrule \addlinespace\addlinespace ") postfoot("\midrule\bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: Using data on Green Book establishments and total establishments from \cite{cook2023}, the table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: i) the number of Green Book restaurants in 1939, standardized by the total number of restaurants in 1935 in column (1); ii) the number of Green Book gas stations in 1939, standardized by the total number of gas stations in 1935 in column (2); iii) the number of Green Book hotels in 1939, standardized by the total number of hotels in 1935 in column (3); iv) the number of Green Book restaurants, gas stations, and hotels in 1939, standardized by the total number of restaurants, gas stations, and hotels in 1935 in column (4). Columns (5) to (8) replicate the previous analysis for 1948 Green Book establishments and 1948 total establishments. From \cite{cook2023}, the 1935 and 1948 Census of Business is used to obtain county-level data on the total number of restaurants, gas stations, and formal accommodations (hotels and motels). The number of observations depends on the data available from the Census of Business, which only lists specific types of industries and only includes data for counties that meet certain reporting requirements \citep{cook2023}. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} \end{center} \end{table}")


/*
Table C6. Controlling for potential forces promoting Black activism
*/
cd $dataset
use "dataset_wide_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_ba

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn: dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_ba

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.naacp_branch_1964_pcb#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_naacp

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.naacp_branch_1964_pcb#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_naacp

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.core#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_core

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y17_mn: dis %8.3fc r(mean)
local y17_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x17_mn: dis %8.3fc r(mean)
local x17_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.core#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_core

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y18_mn: dis %8.3fc r(mean)
local y18_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x18_mn: dis %8.3fc r(mean)
local x18_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.black_church_members_36_pop#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_church

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y19_mn: dis %8.3fc r(mean)
local y19_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x19_mn: dis %8.3fc r(mean)
local x19_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.black_church_members_36_pop#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_church

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y20_mn: dis %8.3fc r(mean)
local y20_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x20_mn: dis %8.3fc r(mean)
local x20_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.wwii_vol_draft_rate_black#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_wwii

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.wwii_vol_draft_rate_black#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_wwii

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.pca_county_pol_eco#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_pca2024

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y21_mn: dis %8.3fc r(mean)
local y21_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x21_mn: dis %8.3fc r(mean)
local x21_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 6
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.pca_county_pol_eco#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_pca2024

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y22_mn: dis %8.3fc r(mean)
local y22_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x22_mn: dis %8.3fc r(mean)
local x22_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 7
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.kkk_klavern_64_66_pcw#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_kkk

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y11_mn: dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 7
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.kkk_klavern_64_66_pcw#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_kkk

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 8
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.black_lynching_1930_1940#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_lynching

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y13_mn: dis %8.3fc r(mean)
local y13_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x13_mn: dis %8.3fc r(mean)
local x13_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 8
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.black_lynching_1930_1940#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_lynching

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y14_mn: dis %8.3fc r(mean)
local y14_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x14_mn: dis %8.3fc r(mean)
local x14_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Table
cd $output

estout bl_ba bl_naacp bl_core bl_church bl_wwii bl_pca2024 bl_kkk bl_lynching using forces_civil_rights_new_revision.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{6.0pt} \caption{Controlling for potential forces promoting Black activism} \label{forces_civil_rights_new_revision} \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\tiny \begin{tabular}{p{0.19\textwidth}>{\centering}p{0.075\textwidth}>{\centering}p{0.075\textwidth}>{\centering}p{0.075\textwidth}>{\centering}p{0.075\textwidth}>{\centering}p{0.075\textwidth}>{\centering}p{0.075\textwidth}>{\centering}p{0.075\textwidth}>{\centering\arraybackslash}p{0.075\textwidth}} \toprule\midrule \textit{Dep. variable:} & \multicolumn{8}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-9} & Baseline & NAACP & CORE & Black & WWII & Discrimination & KKK & Lynching \\ & Specification & Chapters & Events & Church & Enlistment & Index & & \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8) \\ \midrule \multicolumn{8}{l}{\emph{Panel A: Black registration}} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y9_mn'&`y1_mn'&`y17_mn'&`y19_mn'&`y3_mn'&`y21_mn'&`y11_mn'&`y13_mn' \\ &`y9_sd'&`y1_sd'&`y17_sd'&`y19_sd'&`y3_sd'&`y21_sd'&`y11_sd'&`y13_sd' \\ \addlinespace Black share, 1960 &`x9_mn'&`x1_mn'&`x17_mn'&`x19_mn'&`x3_mn'&`x21_mn'&`x11_mn'&`x13_mn' \\ &`x9_sd'&`x1_sd'&`x17_sd'&`x19_sd'&`x3_sd'&`x21_sd'&`x11_sd'&`x13_sd' \\ \midrule \addlinespace\addlinespace ")

estout wh_ba wh_naacp wh_core wh_church wh_wwii wh_pca2024 wh_kkk wh_lynching using forces_civil_rights_new_revision.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \multicolumn{8}{l}{\emph{Panel B: White registration}} \\ \midrule") prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y10_mn'&`y2_mn'&`y18_mn'&`y20_mn'&`y4_mn'&`y22_mn'&`y12_mn'&`y14_mn' \\ &`y10_sd'&`y2_sd'&`y18_sd'&`y20_sd'&`y4_sd'&`y22_sd'&`y12_sd'&`y14_sd' \\ \addlinespace Black share, 1960 &`x10_mn'&`x2_mn'&`x18_mn'&`x20_mn'&`x4_mn'&`x22_mn'&`x12_mn'&`x14_mn' \\ &`x10_sd'&`x2_sd'&`x18_sd'&`x20_sd'&`x4_sd'&`x22_sd'&`x12_sd'&`x14_sd' \\ \midrule \addlinespace\addlinespace ") postfoot("\midrule\bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: The table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: i) the number of NAACP chapters in 1964, standardized by the Black population in 1960 in column (2); ii) an indicator for the presence of a Congress of Racial Equality (CORE) event between 1942 and 1964 in column (3); iii) the number of members in Black churches in 1936, standardized by Black population in column (4); iv) the number of Black U.S. military enlistment during the onset of WWII, standardized by the number of eligible men in 1940 in column (5); v) one indicator of discrimination (obtained via principal component analysis, PCA) for political components and economic components in column (6); vi) the number of KKK Klaverns between 1964 and 1966, standardized by the white population in 1960 in column (7); vii) the number of lynchings against African Americans between 1930 and 1940, standardized by the Black population in 1940 in column (8). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} \end{center} \end{table}")


/*
Table C7. Controlling for spending on the War on Poverty
*/
cd $dataset
use "dataset_wide_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn: dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.pct_1kput#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_1k

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.pct_1kput#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_1k

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.pct_2kput#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_2k

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.pct_2kput#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_2k

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.childpov60#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_3k

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.childpov60#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_3k

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.fedc6568_pc#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_CAP

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.fedc6568_pc#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_CAP

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.avg_fedc6568_pc#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_CAP_year

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y11_mn: dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 6
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.avg_fedc6568_pc#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_CAP_year

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 7
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.fedc65_pc#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_CAP_65

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y13_mn: dis %8.3fc r(mean)
local y13_sd = "(" + string(r(sd), "%8.3fc") + ")"

quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x13_mn: dis %8.3fc r(mean)
local x13_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 7
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc c.fedc65_pc#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_CAP_65

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y14_mn: dis %8.3fc r(mean)
local y14_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x14_mn: dis %8.3fc r(mean)
local x14_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Table
cd $output

estout bl_4 bl_4_1k bl_4_2k bl_4_3k  bl_4_CAP bl_4_CAP_year bl_4_CAP_65 using robustness_poverty.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{12.0pt} \caption{Controlling for spending on the War on Poverty} \label{robustness_poverty} \resizebox{1\textwidth}{!}{  \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\small \begin{tabular}{p{0.28\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering\arraybackslash}p{0.11\textwidth}} \toprule\midrule \textit{Dep. variable:} & \multicolumn{7}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-8} & Baseline & Below & Below & Child & Total & Average & CAP Exp. \\ & Specification & 1,000 & 2,000 & Poverty & CAP Exp. & CAP Exp. & p.c. \\ & & U.S. & U.S. & & p.c. & p.c. & 1965 \\ & & Dollars & Dollars & & 1965-68 & 1965-68 &  \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) & (7) \\ \midrule \multicolumn{7}{l}{\emph{Panel A: Black registration}} \\ \midrule" ) prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn'&`y9_mn'&`y11_mn' & `y13_mn' \\ &`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd'&`y9_sd'&`y11_sd'&`y13_sd' \\ \addlinespace Black share, 1960 &`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn'&`x9_mn'&`x11_mn'&`x13_mn' \\ &`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd'&`x9_sd'&`x11_sd'&`x13_sd' \\ \midrule \addlinespace \addlinespace")

estout wh_4 wh_4_1k wh_4_2k wh_4_3k wh_4_CAP wh_4_CAP_year wh_4_CAP_65 using robustness_poverty.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \multicolumn{7}{l}{\emph{Panel B: White registration}} \\ \midrule" ) prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn'&`y10_mn'&`y12_mn'&`y14_mn' \\ &`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd'&`y10_sd'&`y12_sd'&`y14_sd' \\ \addlinespace Black share, 1960 &`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'&`x10_mn' &`x12_mn'&`x14_mn'\\ &`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd'&`x10_sd'&`x12_sd'&`x14_sd' \\ \midrule \addlinespace \addlinespace") postfoot("\midrule \bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: Using data on the War on Poverty from \cite{bailey2014}, the table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: i) the share of the population with an income below 1,000 U.S. dollars in 1960 in column (2); ii) the share of the population with an income below 2,000 U.S. dollars in 1960 in column (3); iii) the child poverty rate in column (4); iv) the real federal CAP expenditures per capita, 1965-1968, in column (5); v) the average real federal CAP expenditures per capita, 1965-1968, in column (6); vi) the real federal CAP expenditures per capita, 1965, in column (7). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} }\end{center} \end{table}")



/*
Table C8. Controlling for Black net migration rate
*/
cd $dataset
use "dataset_wide_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn : dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc bl4060_mgrate_nc bl4060_mgrate ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_4060

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc bl4060_mgrate_nc bl4060_mgrate ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_4060

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc bl4050_mgrate_nc bl4050_mgrate ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_4050

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc bl4050_mgrate_nc bl4050_mgrate ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_4050

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc bl5060_mgrate_nc bl5060_mgrate ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto bl_4_5060

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 c.family_less_3000#literacy_nc c.unemp60#literacy_nc c.rural_farm60#literacy_nc c.cotton_share_acre#literacy_nc c.school_low#literacy_nc c.pro_black_county#literacy_nc c.anti_black_county#literacy_nc c.gb_tot_1955_b#literacy_nc bl5060_mgrate_nc bl5060_mgrate ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_4_5060

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Table
// TABLE C8 IN THE PAPER IS HARD CODED. THE LAYOUT IS DIFFERENT FROM THE BELOW TABLE
cd $output

estout bl_4 bl_4_4060 bl_4_4050 bl_4_5060 using robustness_net_bl_mig.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60 bl4060_mgrate_nc bl4060_mgrate bl4050_mgrate_nc bl4050_mgrate bl5060_mgrate_nc bl5060_mgrate) order(black_share60_lit_nc black_share60 bl4060_mgrate_nc bl4060_mgrate bl4050_mgrate_nc bl4050_mgrate bl5060_mgrate_nc bl5060_mgrate) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{12.0pt} \caption{Controlling for Black net migration rate} \label{robustness_black_migration_rate} \resizebox{1\textwidth}{!}{ \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\small \begin{tabular}{p{0.35\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering\arraybackslash}p{0.11\textwidth}} \toprule\midrule \textit{Dep. variable:} & \multicolumn{4}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-5} & Baseline & Migration & Migration & Migration \\ & Specification & Rate & Rate & Rate \\ & & 1940-1960 & 1940-1950 & 1950-1960 \\ \addlinespace & (1) & (2) & (3) & (4) \\ \midrule \multicolumn{4}{l}{\emph{Panel A: Black registration}} \\ \midrule" ) prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn' \\ &`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd' \\ \addlinespace Black share, 1960 &`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn' \\ &`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd' \\ \midrule \addlinespace \addlinespace")

estout wh_4 wh_4_4060 wh_4_4050 wh_4_5060 using robustness_net_bl_mig.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60 bl4060_mgrate_nc bl4060_mgrate bl4050_mgrate_nc bl4050_mgrate bl5060_mgrate_nc bl5060_mgrate) order(black_share60_lit_nc black_share60 bl4060_mgrate_nc bl4060_mgrate bl4050_mgrate_nc bl4050_mgrate bl5060_mgrate_nc bl5060_mgrate) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \multicolumn{4}{l}{\emph{Panel B: White registration}} \\ \midrule" ) prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn' \\ &`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd' \\ \addlinespace Black share, 1960 &`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'\\ &`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd' \\ \midrule \addlinespace \addlinespace") postfoot("\midrule \bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: The table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: i) the Black net migration rate 1940-1960 in column (2); ii) the Black net migration rate 1940-1950 in column (3); iii) the Black net migration rate 1950-1960 in column (4). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} }\end{center} \end{table}")



/*
Table C9. Controlling for historical Black political power
*/
cd $dataset
use "dataset_wide_2.dta", clear

// Panel A, column 1
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y1_mn : dis %8.3fc r(mean)
local y1_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x1_mn: dis %8.3fc r(mean)
local x1_sd = "(" + string(r(sd), "%8.3fc") + ")"
 
// Panel B, column 1
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y2_mn: dis %8.3fc r(mean)
local y2_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x2_mn: dis %8.3fc r(mean)
local x2_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 2
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.b_reg_rate_1867_williams_way#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_williams_b

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y3_mn: dis %8.3fc r(mean)
local y3_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x3_mn: dis %8.3fc r(mean)
local x3_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 2
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.b_reg_rate_1867_williams_way#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_williams_b

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y4_mn: dis %8.3fc r(mean)
local y4_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x4_mn: dis %8.3fc r(mean)
local x4_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 3
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.w_reg_rate_1867_williams_way#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
	est sto bl_williams_w

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y5_mn: dis %8.3fc r(mean)
local y5_sd = "(" + string(r(sd), "%8.3fc") + ")"

quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x5_mn: dis %8.3fc r(mean)
local x5_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 3
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.w_reg_rate_1867_williams_way#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
	est sto wh_williams_w

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y6_mn: dis %8.3fc r(mean)
local y6_sd = "(" + string(r(sd), "%8.3fc") + ")"

quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x6_mn: dis %8.3fc r(mean)
local x6_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 4
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.logan_b_politic_dum_1865_1880#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_logan_b_politician_dum

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y7_mn: dis %8.3fc r(mean)
local y7_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x7_mn: dis %8.3fc r(mean)
local x7_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 4
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.logan_b_politic_dum_1865_1880#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_logan_b_politician_dum

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y8_mn: dis %8.3fc r(mean)
local y8_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x8_mn: dis %8.3fc r(mean)
local x8_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 5
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.logan_b_politic_num_b_1865_1880#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_logan_b_politician_num

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y9_mn: dis %8.3fc r(mean)
local y9_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x9_mn: dis %8.3fc r(mean)
local x9_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel B, column 5
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.logan_b_politic_num_b_1865_1880#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto wh_logan_b_politician_num

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y10_mn: dis %8.3fc r(mean)
local y10_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x10_mn: dis %8.3fc r(mean)
local x10_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Panel A, column 6
xi: reg ch_ln_votreg_black_pct_pres black_share60_lit_nc black_share60 $controls_int c.logan_b_politic_dum_1865_1880#literacy_nc c.logan_b_politic_num_b_1865_1880#literacy_nc c.b_reg_rate_1867_williams_way#literacy_nc c.b_reg_rate_1867_williams_way#literacy_nc ibn.STATE [aweight=pop1960] , nocon robust cluster(judicial_divisions_id)
est sto bl_all_controls

quietly summarize votreg_black_pct_presyears1960 [aweight=pop1960] if e(sample)
local y11_mn : dis %8.3fc r(mean)
local y11_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x11_mn: dis %8.3fc r(mean)
local x11_sd = "(" + string(r(sd), "%8.3fc") + ")"
 
// Panel B, column 6
xi: reg ch_ln_votreg_white_pct_pres black_share60_lit_nc black_share60 $controls_int c.logan_b_politic_dum_1865_1880#literacy_nc c.logan_b_politic_num_b_1865_1880#literacy_nc c.b_reg_rate_1867_williams_way#literacy_nc c.b_reg_rate_1867_williams_way#literacy_nc ibn.STATE [aweight=pop1960], nocon robust cluster(judicial_divisions_id)
est sto wh_all_controls

quietly summarize votreg_white_pct_presyears1960 [aweight=pop1960] if e(sample)
local y12_mn: dis %8.3fc r(mean)
local y12_sd = "(" + string(r(sd), "%8.3fc") + ")"
quietly summarize black_share60 [aweight=pop1960] if e(sample)
local x12_mn: dis %8.3fc r(mean)
local x12_sd = "(" + string(r(sd), "%8.3fc") + ")"

// Table
cd $output
estout bl bl_williams_b bl_williams_w bl_logan_b_politician_dum bl_logan_b_politician_num bl_all_controls using robustness_williams_logan.tex, replace type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\begin{table}[ph!] \begin{center} \setlength\tabcolsep{12.0pt} \caption{Controlling for historical Black political power} \label{robustness_williams_logan} \resizebox{1\textwidth}{!}{ \begin{threeparttable}\renewcommand{\arraystretch}{0.8}\small \begin{tabular}{p{0.28\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering}p{0.11\textwidth}>{\centering\arraybackslash}p{0.11\textwidth}} \toprule\midrule \textit{Dep. variable:} & \multicolumn{6}{c}{(ln) Registration Rates} \\ \cmidrule(r){2-7} & & \multicolumn{2}{c}{1867 Registration} & \multicolumn{2}{c}{1865-1880 Black Politicians} & \\ \cmidrule(r){3-4} \cmidrule(r){5-6} & Baseline & Black & White & Dummy & Share & All \\ & Specification & Registration & Registration & Variable & & Variables \\ \addlinespace & (1) & (2) & (3) & (4) & (5) & (6) \\ \midrule \multicolumn{6}{l}{\emph{Panel A: Black registration}} \\ \midrule" ) prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y1_mn'&`y3_mn'&`y5_mn'&`y7_mn'&`y9_mn'&`y11_mn' \\ &`y1_sd'&`y3_sd'&`y5_sd'&`y7_sd'&`y9_sd'&`y11_sd' \\ \addlinespace Black share, 1960 &`x1_mn'&`x3_mn'&`x5_mn'&`x7_mn'&`x9_mn'&`x11_mn' \\ &`x1_sd'&`x3_sd'&`x5_sd'&`x7_sd'&`x9_sd'&`x11_sd' \\ \midrule \addlinespace \addlinespace")

estout wh wh_williams_b wh_williams_w wh_logan_b_politician_dum wh_logan_b_politician_num wh_all_controls using robustness_williams_logan.tex, append type stats(r2_a  N, fmt(2 0) labels("Adj. R-Square" "N")) keep(black_share60_lit_nc black_share60) order(black_share60_lit_nc black_share60) cells("b(star label( ) fmt(3))" "se(par label( ) fmt(3))") mlabels(none) collabels(none) starlevels(* 0.10 ** 0.05 *** 0.01) nostardetach label msign (--) varwidth(12) modelwidth (10) style(tex) prehead("\addlinespace \midrule \multicolumn{6}{l}{\emph{Panel B: White registration}} \\ \midrule" ) prefoot("\textit{Summary statistics:} \\ \midrule Dep. variable &`y2_mn'&`y4_mn'&`y6_mn'&`y8_mn'&`y10_mn'&`y12_mn' \\ &`y2_sd'&`y4_sd'&`y6_sd'&`y8_sd'&`y10_sd'&`y12_sd' \\ \addlinespace Black share, 1960 &`x2_mn'&`x4_mn'&`x6_mn'&`x8_mn'&`x10_mn'&`x12_mn'\\ &`x2_sd'&`x4_sd'&`x6_sd'&`x8_sd'&`x10_sd'&`x12_sd' \\ \midrule \addlinespace \addlinespace") postfoot("\midrule \bottomrule\end{tabular} \begin{tablenotes}[flushleft] \scriptsize \item \leavevmode\kern-\scriptspace\kern-\labelsep Notes: Using data on Black and white registration from \cite{williams2022}, and on Black politicians from \cite{logan20}, the table replicates the long difference model in equation \eqref{longdiff} including the interaction of the coverage (VRA) dummy with: i) the Black registration rate in 1867 in column (2); ii) the white registration rate in 1867 in column (3); iii) a dummy variable equal to 1 for the counties with at least one Black politician between 1865 and 1880 in column (4); iv) the share of Black politicians between 1865 and 1880, relative to 1900 Black population, in column (5); v) all interactions simultaneously in column (6). Controls are: Low-skilled (\%), 1960; Unemployment rate (\%), 1960; Families below poverty line (\%), 1960; Rural farms (\%), 1960; Land devoted to harvested cotton (\%), 1959; Pro-Black protest, 1960-64; Anti-Black protest, 1960-64; Green Book establishments, 1955. Regressions are weighed by 1960 population, and robust standard errors in parenthesis are adjusted for clustering by judicial divisions. ***, **, and * indicate statistical significance at the 1\%, 5\%, and 10\% levels, respectively.\end{tablenotes} \end{threeparttable} }\end{center} \end{table}")



/*
Table C10. Testing for parallel trends
*/
// Roth test for Baseline Event Study 
cd $dataset
use "dataset_panel_1.dta", clear

// Column 1
xi, prefix(Tr): xtreg ln_votreg_black_pct_pres $black $black_lit $controls_figure_2 dummy_STATE_NC1_YEAR1-dummy_STATE_NC11_YEAR7 [aweight=pop1960] if year >= 1956 & year <= 1980, fe robust cluster(judicial_divisions_id)

pretrends power 0.50, pre(8 10) post(11/14)
	return list
local slope50 `r(slope)'	
pretrends power 0.80, pre(8 10) post(11/14)
	return list
local slope80 `r(slope)'		
pretrends power 0.90, pre(8 10) post(11/14)
	return list
local slope90 `r(slope)' 
matrix sigma = e(V)
matrix beta  = e(b)
matrix beta_sub1 = beta[1,8]
matrix beta_sub2 = beta[1,10]
matrix beta_sub3 = beta[1,11..14]
matrix beta = beta_sub1 , beta_sub2, beta_sub3
matrix sigma_sub1 = sigma[8,8]
matrix sigma_sub2 = sigma[8,10]
matrix sigma_sub3 = sigma[8,11..14]
matrix sigma_sub4 = sigma[10,8]
matrix sigma_sub5 = sigma[10,10]
matrix sigma_sub6 = sigma[10,11..14]
matrix sigma_sub7 = sigma[11..14,8]
matrix sigma_sub8 = sigma[11..14,10]
matrix sigma_sub9 = sigma[11..14,11..14]
matrix sigma = sigma_sub1, sigma_sub2, sigma_sub3 \ sigma_sub4, sigma_sub5, sigma_sub6 \sigma_sub7, sigma_sub8, sigma_sub9 
matlist beta
matlist sigma
pretrends, numpre(2) b(beta) v(sigma) slope(`r(slope)')
matlist r(results)
return list

// Column 2
xi, prefix(Tr): xtreg ln_votreg_white_pct_pres $black $black_lit $controls_figure_2 dummy_STATE_NC1_YEAR1-dummy_STATE_NC11_YEAR7 [aweight=pop1960] if year >= 1956 & year <= 1980 & FIPSTATE != 28, fe robust cluster(judicial_divisions_id)

pretrends power 0.50, pre(8 10) post(11/14)
	return list
local slope50 `r(slope)'
pretrends power 0.80, pre(8 10) post(11/14)
	return list
local slope80 `r(slope)'	
pretrends power 0.90, pre(8 10) post(11/14)
	return list
local slope90 `r(slope)' 
matrix sigma = e(V)
matrix beta  = e(b)
matrix beta_sub1 = beta[1,8]
matrix beta_sub2 = beta[1,10]
matrix beta_sub3 = beta[1,11..14]
matrix beta = beta_sub1 , beta_sub2, beta_sub3
matrix sigma_sub1 = sigma[8,8]
matrix sigma_sub2 = sigma[8,10]
matrix sigma_sub3 = sigma[8,11..14]
matrix sigma_sub4 = sigma[10,8]
matrix sigma_sub5 = sigma[10,10]
matrix sigma_sub6 = sigma[10,11..14]
matrix sigma_sub7 = sigma[11..14,8]
matrix sigma_sub8 = sigma[11..14,10]
matrix sigma_sub9 = sigma[11..14,11..14]
matrix sigma = sigma_sub1, sigma_sub2, sigma_sub3 \ sigma_sub4, sigma_sub5, sigma_sub6 \sigma_sub7, sigma_sub8, sigma_sub9 
matlist beta
matlist sigma
pretrends, numpre(2) b(beta) v(sigma) slope(`r(slope)')
matlist r(results)
return list

// Roth test for First Black Official Event Study
cd $dataset
use "dataset_event_study_3.dta", replace

// Column 3
xi, prefix(Tr): xtreg ln_votreg_black_pct_2yrs $time_beo $controls_int_panel i.STATE*year [aweight=pop1960] , fe robust cluster(judicial_divisions_id)

pretrends power 0.5, pre(2/5) post(7/12)
	return list
local slope50 `r(slope)'
pretrends power 0.8, pre(2/5) post(7/12)
	return list
local slope80 `r(slope)'
pretrends power 0.9, pre(2/5) post(7/12)
	return list
local slope90 `r(slope)'
matrix sigma = e(V)
matrix beta  = e(b)
matrix beta_sub1 = beta[.,2..5]
matrix beta_sub2 = beta[.,7..12]
matrix beta = beta_sub1, beta_sub2
matrix sigma_sub1 = sigma[2..5,2..5]
matrix sigma_sub2 = sigma[2..5,7..12]
matrix sigma_sub3 = sigma[7..12,2..5]
matrix sigma_sub4 = sigma[7..12,7..12]
matrix sigma = sigma_sub1, sigma_sub2 \ sigma_sub3, sigma_sub4
matlist beta
matlist sigma
pretrends, numpre(4) b(beta) v(sigma) slope(`r(slope)')
matlist r(results)
return list
	
// Column 4
xi, prefix(Tr): xtreg ln_votreg_white_pct_2yrs $time_beo $controls_int_panel i.STATE*year [aweight=pop1960] , fe robust cluster(judicial_divisions_id)

pretrends power 0.5, pre(2/5) post(7/12)
	return list
local slope50 `r(slope)'
pretrends power 0.8, pre(2/5) post(7/12)
	return list
local slope80 `r(slope)'
pretrends power 0.9, pre(2/5) post(7/12)
	return list
local slope90 `r(slope)'
matrix sigma = e(V)
matrix beta  = e(b)
matrix beta_sub1 = beta[.,2..5]
matrix beta_sub2 = beta[.,7..12]
matrix beta = beta_sub1, beta_sub2
matrix sigma_sub1 = sigma[2..5,2..5]
matrix sigma_sub2 = sigma[2..5,7..12]
matrix sigma_sub3 = sigma[7..12,2..5]
matrix sigma_sub4 = sigma[7..12,7..12]
matrix sigma = sigma_sub1, sigma_sub2 \ sigma_sub3, sigma_sub4
matlist beta
matlist sigma
pretrends, numpre(4) b(beta) v(sigma) slope(`r(slope)')
matlist r(results)
return list
	
































